/*
 * CGraphicEngine.h
 *
 *  Created on: 26.04.2009
 *      Author: markus
 */

#ifndef CGRAPHICENGINE_H_
#define CGRAPHICENGINE_H_

//#include "../../../ogre/OgreMain/include/Ogre.h"
#include <Ogre.h>
#include "../src/ErrorOutputs.h"
#include "../Input/COisBufferedInputHandler.h"
#include "CInputFrameListener.h"
#include "ConfigStructs.h"
#include <SDL.h>
#include <SDL_syswm.h>



class CGraphicEngine
{
private:
	Ogre::Root *m_OgreRoot;
	COisBufferedInputHandler *m_InputHandler;
	CInputFrameListener *m_InputFrameListener;
	CLivingObject *m_plvobjPlayer;
	Ogre::RenderWindow *m_RenderWindow;

public:
	CGraphicEngine();
	~CGraphicEngine();

	bool start(std::list<CLivingObject> *lstLivingObj, ConfigContainer configContainer); // creates the root object and handles all other startup functions

private:
	bool loadResources(void);
	bool createScene(void);
	bool createFrameListeners(KeyMapping *keyMapping);
	bool startUpThirdParty(void);

};

#endif /* CGRAPHICENGINE_H_ */
